Data processing systems, e.g., desktop computers, laptop computers, personal digital assistants, and the like, use display devices (e.g., computer monitors) to show objects such as text characters, and still and moving images on a screen. Graphical user interfaces are created for a user to interact with a data processing system using various images, e.g., icons, windows, and other objects. Icons are small pictures shown on a screen of a display device that may represent programs, or files or other items. For example, by moving a pointer to an icon and pressing a mouse button, the user executes a command, opens a file represented by the icon into a window, or moves the icon around the display screen. Typically, a user operates an application executed by a processor through one or more windows displayed on the screen of the display device.
With the increased performance of data processing systems, more and more applications can be executed by a processor at the same time. Consequently, more and more application windows of various applications may be displayed on the screen of the display device at the same time. As such, various application windows have to share the same screen space of the display device. Typically, the user switches between application windows displayed on the screen of the display device to communicate with the applications. Sharing the screen space by many application windows causes clutter on the screen space. Therefore, the quest for larger display devices and/or better use of the screen real estate becomes important. This is especially important for data processing systems having relatively small screens, e.g., laptop computers and personal digital assistants (PDAs).
FIG. 1 illustrates a screen space 100 of a display device of a computer in a multi-application mode environment. In the multi-application mode, a user may divide the screen space 100 into different areas using windows which may overlap each other. The desktop 110 is the area on the display screen 100 where icons 111 are typically displayed. In each window, the user may run a different program or display a different file. As shown in FIG. 1, a major screen space 100 is shared by an application window 101 and an application window 102. As shown in FIG. 1, application window 101 is controlled by Microsoft Excel, and application window 102 is controlled by Microsoft Word. Microsoft Excel and Microsoft Word are produced by Microsoft, Inc. located in Redmond, Wash. As shown in FIG. 1, icons 103, 104, and 105 at a bottom of the screen space 100 represent applications that are currently executed by the computer. When the user switches from Microsoft Excel to Microsoft Word, the application window 102 moves to the front of screen space 100, and application window 101 moves to the back of screen space 100, behind application window 102, as shown in FIG. 1. That is, all application windows remain occupying screen space 100 when the user switches between applications. Displaying multiple application windows on a display device causes significant clutter of the screen space. Typically, to reduce the clutter of screen space 100 the user minimizes application window 101 by positioning the pointer over minimizing window icon 106 and clicking (e.g. pressing and releasing) the mouse's button.
FIG. 2 illustrates another screen space 200 of a display device of a computer in a multi-application mode environment. This environment shown in FIG. 2 is provided by the Macintosh operating system known as Mac OS 9. As shown in FIG. 2, screen space 200 is occupied by application window 201 controlled by Microsoft Word, application window 202 controlled by Microsoft Outlook, and application window 203 controlled by FileMaker Pro produced by FileMaker, Inc., located in Santa Clara, Calif. A user may open a menu 204 and choose a program to operate, e.g., a Microsoft Word, from the menu 204 as shown in FIG. 2. The user may point the pointer cursor over the option “Hide Others” and click a mouse button to hide application window 202 and application window 203, and to display only application window 201 (and other windows) controlled by Microsoft Word. Typically, when the user needs to switch to another application, e.g., to Microsoft Outlook, the user positions the pointer over Microsoft Outlook option of menu 204 and clicks the mouse to bring application window 202 to screen space 200. In response to this switch, application window 202 is displayed with application window 201 to share screen space 200. Further, when the user needs to use yet another program, e.g., FileMaker Pro, the user positions the pointer over FileMaker Pro option of menu 204 and clicks the mouse. In response, application window 203 is brought back to share screen space 200 with application window 201 and application window 203. That is, in the multi-application mode, each time the user needs to use another application, another application window is added up to existing application windows to share screen space 200 and this causes significant screen clutter. To reduce the screen clutter in the multi-application mode, the user needs to perform numerous actions, including many cursor manipulations, to open menu 204, select “Hide Others” option on menu 204 each time when another application window is added to the screen. These many cursor manipulations are very time consuming and inconvenient. The clutter of the screen space that occurs in the multi-application mode environment is not only very inconvenient. In the multi-application mode, the screen clutter and necessity of going back and forth between different applications significantly increases the probability of errors. For example, a user can accidentally click onto a wrong application window to operate a wrong application.
Another example of a prior art user interface is the “Switcher” program developed by Andy Hertzfeld for the Macintosh operating system. The Switcher program allowed a user to switch from user application to user application; however, in this prior art system, only a window controlled by a single application can be displayed and receive input at any one time.